#include "Student_t.h"
#include "StudentFactory.h"
#include "StudentImp.h"
using namespace std;
Student_t::Student_t(std::string &name, std::string &faculty){
	this->studentImp = StudentFactory::CreateStudent(name,faculty);
}

Student_t::Student_t(const Student_t &otherStudent) : studentImp(StudentFactory::CreateStudent(otherStudent.getName(),otherStudent.getFaculty())){
	*this->studentImp = *otherStudent.studentImp;
}


const string& Student_t::getFaculty() const {
	return this->studentImp->getFaculty();
}

const string& Student_t::getName() const {
	return this->studentImp->getName();
}

Student_t::~Student_t(){}

void Student_t::RegisterToSubject(Subject *Subject, EVENT e){
	this->studentImp->RegisterToSubject(Subject,e);
}

void Student_t::UnregisterFromSubject(EVENT e){
	this->studentImp->UnregisterFromSubject(e);
}